The present invention relates to estimating the time to print a document on a printer.
Referring to FIG. 1, conventionally a printing system comprises a computer and a plurality of printers accessible through a communication network such as a LAN (Local Area Network) or a system bus of the computer; one or more printers interconnected to a computer which is in turn interconnected to a communication network and accessible to other computers; or one or more printers interconnected to a computer in any manner. In many cases, the file to be printed is spooled on a dedicated print server on the communication network; spooled on another computer on the communication network; or otherwise spooled on the user's computer. The user selects from among one or more printers for printing the file. Thus, the user selects a printer, which has been determined by the user as optimum, from among the many printers. In other cases, the user's computer, another computer, or the print server selects a suitable printer.
The typical data flow for printing a document includes the user's application printing a document using a printer driver. The printer driver creates document data that includes a printing command train for describing the printing content of characters, figures, and images with respect to each page of the document. The document data is then passed to the print server which stores the document data as a file using a spooler. The print server then reads the file and transmits it to the printer. The printer, in turn, processes the received document and executes the printing to paper. The user's application, printer driver, and print server may be on the same computer, if desired.
Existing technology may allow the user to view the number of print jobs assigned to a given printer, along with the size of the files queued to be printed. This may be used to provide an initial estimate of the time to print a given file. The limitation of such existing technology is that it does not take into account different print job characteristics, which could greatly effect the actual printing time. For example, a small sized job which is printing many copies may take longer to print than a substantially larger sized job printing only a single copy. Another example, is a print job with a lot of graphical data that may take longer to print than a file which is primarily text.
In most cases there are a variety of different types of printers from the same or different manufacturer and different models of the same type of printer from the same or different manufacturer. Therefore, the performance and printing characteristics of each of the printers differs in many respects. For example, ink jet printers typically have a slower print speed than laser printers, and each has a variety of different printing resolutions. In order for the timely printing of documents the user should have an understanding of the time it is going to take to print a particular document on a particular printer using a set of particular settings. For example, to print a 100 page color document for presentation, a color printer should be selected and, if the document is urgently needed for a trial or other pending deadline, the user should select a relatively fast color printer. In addition, the time to print affects the productivity of the user who may be required to wait a significant amount of time because of a large print queue of previous documents or a relatively slow printer. Moreover, completing a print job faster means that the entire printing system of printers may achieve a higher utilization, thereby, avoiding having some jobs queued up on a printer while other, even slower printers are idle.
In most situations, the software application in combination with the printer driver for the selected printer processes the data to be printed and creates a command train containing instructions for the printer, which is spooled into a file by the print server. The file may be in a variety of different formats, such as for example, a raster type format or a postscript type format. The spooled file is then provided to the printer in a suitable manner so that the printer can interpret the spooled file and print the document in the intended manner. When another files is printed to the same printer before the previous file has completed printing, the print server queues the additional file for printing after the previous file has completed printing. In many cases there are multiple files awaiting printing in the print queue.
In many cases the user may view a list of the queued files on the print server. In addition to viewing the list, the user is typically provided with the size of the files that are queued. However, merely viewing the sizes of the files in the queue leaves the user at a loss as to approximately how long it is going to take for the particular files to be printed on the particular printer.
Information as compiled today, such as the number of files and file sizes in the queue, might be used by the print server to provide an estimated time for the document to print or to provide an estimate of the progress of printing the file on the on the printer.
The information available in the queues of multiple printers can be accessed concurrently. Therefore, the estimated time may be presented for a plurality of different printers accessible by the printer server. Unfortunately, the conversion from file size to estimated printing time is not very accurate for many files, especially considering some files contain primarily text, some files contain primarily graphics, some are photo, and some files contain a combination of text, photo, and graphics, all which may be printed at different resolutions on the same printer.